package com.yuandian.api.management.feign;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.api.management.entity.ConfSystem;
import com.yuandian.bpm.common.core.util.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * 说明：远程调用选项接口服务
 * @Author zfsn
 * @Date 2023/3/15 15:06
 */
@FeignClient(contextId = "RemoteSystemService", value = "bpm-management")
public interface RemoteSystemService {

	/**
	 * 通过域编码获取改域下所有系统
	 * @param domainCode 域code
	 * @return 返回对象
	 */
	@GetMapping("/system/getSystemsByDomainId/{domainCode}")
	R<List<ConfSystem>> getSystemsByDomainId(@PathVariable("domainCode") String domainCode);

	/**
	 * 分页查询
	 * @param confSystem 筛选条件
	 * @return 通用返回对象
	 */

	@PostMapping("/system")
	R<Page<ConfSystem>> listPage(ConfSystem confSystem);


	/**
	 * 通过主键查询数据
	 * @param systemId 主键集合
	 * @return 通用返回对象
	 */
	@GetMapping("/system/{systemId}")
	R<ConfSystem> getSystemById(@PathVariable("systemId") Integer systemId);

	/**
	 * 通过域code 获取该域下所有的系统
	 * @return 返回对象
	 */
	@GetMapping("/system/getSystemsAndDomain")
	R<List<ConfSystem>> getSystemsAndDomain();

	/**
	 * 通用查询
	 * @param confSystem 筛选条件
	 * @return 通用返回对象
	 */
	@PostMapping("/system/list")
	R<List<ConfSystem>> list(ConfSystem confSystem);
}
